﻿using System;
using System.Net;
using System.Windows;
using System.ComponentModel;

namespace UnitDriven.Commanding
{
  public interface ICommand : IDisposable
  {
    object UserState { get; }
    TimeSpan Timeout { get; }

    event EventHandler<CommandCompleteEventArgs> Complete;

    void Initialize();
    void Execute();
  }
}
